package com.spider.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.spider.entity.FanxingDetailEntity;
import com.spider.entity.FanxingEntity;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class FanxingUtil {

    /**
     * 获取mainData
     * @param entity
     */
    public static JSONArray getMainData(FanxingEntity entity) throws Exception{
        JSONArray jsonArray = new JSONArray();
        Field[] fields = FanxingEntity.class.getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            String fieldName = field.getName();
            Object fieldValue = field.get(entity);
            if(fieldValue!=null&&!fieldName.equals("fid")){
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("fieldName", fieldName);
                jsonObject.put("fieldValue", fieldValue);
                jsonArray.add(jsonObject);
            }
        }
        return jsonArray;
    }

    /**
     * 获取workflowRequestTableRecords
     */
    public static String getDetailData(List<FanxingDetailEntity> list) throws Exception{
        //先清洗数据- 采购数量清除小数点
        for (FanxingDetailEntity entity : list) {
            String cgsl = entity.getCgsl();
            if (cgsl != null && !cgsl.isEmpty()) {
                // 去除小数点及后面的内容
                int dotIndex = cgsl.indexOf(".");
                if (dotIndex != -1) {
                    cgsl = cgsl.substring(0, dotIndex);
                }
                entity.setCgsl(cgsl);
            }
        }
        JSONArray workflowRequestTableRecords = new JSONArray();
        for(FanxingDetailEntity entity:list){
            JSONArray workflowRequestTableFields = new JSONArray();
            Field[] fields = FanxingDetailEntity.class.getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true);
                String fieldName = field.getName();
                Object fieldValue = field.get(entity);
                if(fieldValue!=null&&!fieldName.equals("fid")){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("fieldName", fieldName);
                    jsonObject.put("fieldValue", fieldValue);
                    workflowRequestTableFields.add(jsonObject);
                }
            }
            JSONObject workflowRequestTableField=new JSONObject();
            workflowRequestTableField.put("workflowRequestTableFields",workflowRequestTableFields);
            workflowRequestTableRecords.add(workflowRequestTableField);
        }
        JSONArray detailData=new JSONArray();
        JSONObject detailData0=new JSONObject();
        detailData0.put("tableDBName","formtable_main_100_dt1");
        //array
        detailData0.put("workflowRequestTableRecords",workflowRequestTableRecords);
        // workflowRequestTableFields 对应单表的每个字段
        detailData.add(detailData0);
        return detailData.toString();
    }

    public static FanxingEntity getTestFanxingEntity(){
        FanxingEntity entity = new FanxingEntity();
        entity.setFjsj("发件时间");
        entity.setFjr("发件人");
        entity.setBh("编号");
        entity.setRq("日期");
        entity.setYj("邮件");
        entity.setSqr("796");
        entity.setSqrbh("申请人编号");
        entity.setJe("金额");
        entity.setDdje("订单金额");
        entity.setXfje("需付金额");
        entity.setBb("币别");
        entity.setZy("摘要");
        entity.setCgbz("采购备注");
        entity.setYt("用途");
        entity.setGf("供方");
        entity.setHm("户名");
        entity.setKhyx("浙江工商银行");
        entity.setZh("账号");
        entity.setBm("部门");
        entity.setFkfs("付款方式");
        entity.setFkqx("付款期限");
        entity.setPzr("批准人");
        entity.setPzrq("批准日期");
        entity.setDkrq("打款日期");
        entity.setDkje("打款金额");
        entity.setCny("出纳员");
        entity.setCwbz("财务备注");
        entity.setDkpz("打款凭证");
        entity.setCwsh("财务审核");
        entity.setCwshrq("财务审核日期");
        entity.setZfbs("作废标志");
        return entity;
    }

    public static List<FanxingDetailEntity> getTestFanxingDetailEntity(){
        List<FanxingDetailEntity> list=new ArrayList<>();
        FanxingDetailEntity entity = new FanxingDetailEntity();
        entity.setXh("序号");                  // 注释赋值给 xh 属性
        entity.setQkbh("请款编号");             // 注释赋值给 qkbh 属性
        //entity.setCgdh("采购单号");             // 注释赋值给 cgdh 属性
        entity.setWlmc("物料名称");             // 注释赋值给 wlmc 属性
        entity.setCas("CAS");                  // 注释赋值给 cas 属性
        entity.setZsl("总数量");               // 注释赋值给 zsl 属性
        entity.setDw("单位");                  // 注释赋值给 dw 属性
        entity.setDj("单价");                  // 注释赋值给 dj 属性
        entity.setJshj("价税合计");            // 注释赋值给 jshj 属性
        entity.setXsddbh("销售订单编号");      // 注释赋值给 xsddbh 属性
        entity.setXskh("销售客户");            // 注释赋值给 xskh 属性
        entity.setYgyshh("源供应商货号");     // 注释赋值给 ygyshh 属性
        entity.setYcs("源厂商");               // 注释赋值给 ycs 属性
        entity.setSqr("申请人");               // 注释赋值给 sqr 属性
        entity.setSyr("使用人");               // 注释赋值给 syr 属性
        entity.setCgsl("采购数量");           // 注释赋值给 cgsl 属性
        entity.setCggg("采购规格");           // 注释赋值给 cggg 属性
        entity.setSfybzfh("是否原包装发货");  // 注释赋值给 sfybzfh 属性
        entity.setSpjy("审批建议");           // 注释赋值给 spjy 属性
        list.add(entity);
        return list;
    }

}
